Wireguard est un logiciel libre qui permet d’établir des tunnels chiffrés de bout en bout (VPN) avec des outils et protocoles robustes et modernes comme le framework Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF…
Le projet est encore jeune (2015) par rapport à ses concurrents (donc moins testé) donc à vous de voir si vous décidez de lui faire confiance ou non. Toutefois, sa surface d’attaque a été réduite au maximum avec peu de code et une facilité d’implémentation.
Alors, comment installer Wireguard sur un serveur Ubuntu sans se prendre le chou ? Et bien pour cela, il existe piVPN qui est un script d’installation permettant d’installer au choix OpenVPN ou WireGuard sans aucune compétence technique.
Destiné au Raspberry Pi (Raspbian) ce script fonctionne aussi parfaitement sur une Debian ou une Ubuntu en mode VPS ou ordinateur personnel. Personnellement, je l’ai déployé sur une instance Ubuntu chez OVH.
Ça vous dit ? Alors c’est parti !
Lancez le script comme ceci :
git clone https://github.com/pivpn/pivpn.git
sudo bash pivpn/auto_install/install.sh
Suivez ensuite le déroulé de l’installation…
Votre serveur aura besoin d’une adresse IP statique pour que vous puissiez vous y connecter. Choisissez ensuite l’utilisateur local qui fera tourner le serveur VPN :
Choisissez ensuite le VPN de votre choix. Wireguard ou OpenVPN. Pour ce tuto, nous allons partir sur Wireguard.
Le script va alors installer le dépôt, Wireguard et toutes les dépendances nécessaires. Puis il vous demandera un port. Laissez par défaut.
Choisissez ensuite le fournisseur de DNS de votre choix.
Pour ma part, j’ai choisi les DNS de Cloudflare.
Ensuite, laissez le choix par défaut pour la connexion à l’IP du serveur par le client :
Des clés vont alors être générées…
L’installeur recommande ensuite d’activer les mises à jour « unattended » pour plus de sécurité (car un port ouvert sur le net, toussa toussa…etc.) et indique aussi que vous allez devoir rebooter.
Vous acceptez et voilà ! Wireguard est installé !
Une fois que c’est terminé, relancez votre serveur.
Ensuite, une fois redémarré, tout se passe avec la commande « pivpn ».
On va ajouter un client avec la commande suivante.:
pivpn -a
On lui donne un nom et y’a plus qu’à aller voir dans le répertoire /home/ubuntu/configs pour retrouver sa configuration.
Si pour un smartphone, vous voulez générez un QR Code à scanner avec le client, entrez la commande :
pivpn -qr
Les clients Wireguard sont tous téléchargeables ici. Il y en a pour Linux, pour macOS, pour Windows, pour iOS, pour Android…
Ensuite dans le client, vous pouvez soit importer le fichier de config qui se trouve dans /home/ubuntu/configs, soit en copier coller le contenu, soit scanner le QR Code.
Voici à quoi ressemble ma conf :
Que vous pouvez coller dans le client (ici le client macOS). Notez que si vous cochez la case « On-Demand », la connexion s’effectuera d’elle-même et se relancera en cas de coupure sur les interfaces réseau (ethernet ou wifi) voulues. Pratique si vous vous connectez à des réseaux wifi qui ne vous appartiennent pas et que vous avez peur d’oublier.
D’ailleurs sur les smartphones cette option On-Demand est intéressante, car vous pouvez choisir d’établir une connexion Wireguard sur les réseaux wifi automatiquement, mais pas quand vous êtes uniquement sur la 4G.
Et voilà ! Vous êtes connecté ! Bravo !